// pages/goods_detail/index.js
const DB=wx.cloud.database().collection("dataList")
Page({

  /**
   * 页面的初始数据
   */
  data: {
    goods:[],
    isCollect:false
  },

  goodsData:[],
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    wx.showLoading({
      title: '加载中',
    })
    let that=this
    let goods_id=options.goods_id
    DB.where({
      goods_id:goods_id
    }).get({
      success(res){
        that.setData({
          goods:res.data[0]
        }),
        that.goodsData=res.data[0]
        wx.hideLoading()
      }
    })
  },

  onShow(){
    //onshow中获取options对象
    let pages=getCurrentPages();
    let currentPage=pages[pages.length-1];
    let options=currentPage.options;

    //获取缓存中收藏的数组
    let collect=wx.getStorageSync('collect')||[];
    //判断该商品是否已经被收藏
    //该方法如果一个元素返回true则结果就为true
    let isCollect=collect.some(v=>v.goods_id===options.goods_id);
    this.setData({
      isCollect
    })
  },

  /**点击收藏 事件 */
  handCollect(){
    let collect=wx.getStorageSync('collect')||[];
    //判断该商品是否被收藏过
    let index=collect.findIndex(v=>v.goods_id===this.data.goods.goods_id);
    if(index!==-1){
      //表明已经收藏过了
      collect.splice(index,1);
      this.setData({
        isCollect:false
      })
      wx.showToast({
        title: '取消收藏',
        mask:true
      })
    }else{
      collect.push(this.data.goods);
      this.setData({
        isCollect:true
      })
      wx.showToast({
        title: '收藏成功',
      })
    }
    wx.setStorageSync('collect', collect);
  },

  //图片全屏显示函数
  imgBind(){
    
    wx.previewImage({
      current: this.data.goods.img_src[0], // 当前显示图片的http链接
      urls: this.data.goods.img_src // 需要预览的图片http链接列表
    })
  },

  //加入购物车
  handCardAdd(){
    /*
    获取缓存中的购物车 数组
    由于第一次获取肯定是一个空的字符串，所以给他转化成数组，保证它肯定是数组
    */
    let cart=wx.getStorageSync('cart')||[];

    //判断商品对象是否存在于购物车中
    let index=cart.findIndex(v=>v.goods_id==this.goodsData.goods_id);
    if(index===-1){
      //表示购物车中没有该数据
      this.goodsData.num=1,
      //将该数据放入购物车数组中
      cart.push(this.goodsData)
      
    }else{
      //表示购物车中已经有了 需要给数量+1
      cart[index].num++;
    }
    //将购物车数组重新放入缓存中
    wx.setStorageSync('cart', cart);
    //弹窗提示用户添加购物车成功
    wx.showToast({
      title: '加入购物成功',
      icon:'success',
      //使用用户1.5s之后才能再次点击页面，防止恶意
      mask:'true'
    })
  },
  
  handBuy(){
    wx.showToast({
      title: '请加入购物车购买',
      icon:'none',
      mask:'true'
    })
  }
})